package com.aaa.common.util;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice   //全局处理异常，不用每个controller自己处理异常 所有的controller都会走这个类
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public Result exceptionHandlerMethod(Exception e){
        //打印异常栈信息
        e.getMessage();  //打印一行具体错误
        e.printStackTrace();  //打印详细的错误
        //自定义异常，   instanceof 判断一个对象是否属于自定义异常
        if(e instanceof CustomException){
            return new Result(((CustomException) e).getErrorCode(),
                    ((CustomException) e).getErrorMessage());
        }
        return new Result(ResultStatus.FAIL.getCode(),
                ResultStatus.FAIL.getMessage(),
                e.getClass().getName());
    }
}
